package dados;

import java.util.Date;
import java.util.List;

import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;

import basicas.Encargo;
import basicas.Encargo.TipoEncargo;

public class DAOEncargo  extends DAOGenerico<Encargo> implements IDAOEncargo{

	@Override
	public List<Encargo> listarEncargosPorPeriodo(Date dataInicial, Date dataFinal) throws Exception {
		try{
			TypedQuery<Encargo> query = entityManager.createQuery("from Encargo e where e.dataEncargo between :inicial and :final", Encargo.class);
			query.setParameter("inicial", dataInicial);
			query.setParameter("final", dataFinal);
			return  query.getResultList();
			}catch(NoResultException x){
				return null;
			}
	}

	@Override
	public List<Encargo> listarEncargosPorTipo(TipoEncargo tipo) throws Exception{
	try{
		TypedQuery<Encargo> query = entityManager.createQuery("from Encargo e where e.tipoEncargo = :tipo", Encargo.class);
		query.setParameter("tipoenc", tipo);
		return  query.getResultList();
		}catch(NoResultException x){
			return null;
		}
	}

	@Override
	public List<Encargo> listarEncargosPorValor(String oper, double valor) throws Exception {
		try{
			TypedQuery<Encargo> query = entityManager.createQuery("from Encargo e where e.valor oper :valor", Encargo.class);
			query.setParameter("operacao", oper);
			query.setParameter("val", valor);
			return  query.getResultList();
			}catch(NoResultException x){
				return null;
			}
	}

}
